package com.punch.user.service;

import com.punch.common.page.PageInfo;
import com.punch.common.query.user.supplier.SupplierQueryInfo;
import com.punch.common.service.ISuperService;
import com.punch.common.vo.user.supplier.SimpleSupplierVO;
import com.punch.common.vo.user.supplier.SupplierVO;
import com.punch.user.model.SysSupplier;

import java.util.List;

/**
 * 供应商管理service层
 */
public interface SupplierService extends ISuperService<SysSupplier> {

    /**
     * 供应商列表
     *
     * @param queryInfo 查询条件
     * @return SupplierVO
     */
    PageInfo<SupplierVO> queryPage(SupplierQueryInfo queryInfo);

    /**
     * 新增
     *
     * @param supplierVO 供应商信息
     * @return 供应商id
     */
    Long saveSupplier(SupplierVO supplierVO);

    /**
     * 修改
     *
     * @param supplierVO 供应商信息
     * @return 供应商id
     */
    Long updateSupplier(SupplierVO supplierVO);

    /**
     * 删除供应商
     *
     * @param supplierId 供应商id
     * @return 供应商id
     */
    Long deleteSupplier(Long supplierId);

    /**
     * 用户修改学校/机构信息,供应商跟随改变
     *
     * @param userId 用户id
     */
    void updateSupplierWithUser(Long userId, Integer roleId);

    /**
     * 供应商列表-简单信息
     *
     * @return List<SimpleSupplierVO>
     */
    List<SimpleSupplierVO> listSupplierSimple();

    /**
     * 获取供应商
     */
    SupplierVO getSupplier(Long supplierId);
}
